package tliasmanagement.utils;

public class CurrentHolder {

    // 使用ThreadLocal为每个线程提供独立的变量副本，确保线程安全
    private static final ThreadLocal<Integer> CURRENT_LOCAL = new ThreadLocal<>();

    /*
    * 将指定的员工ID存储到当前线程的ThreadLocal变量中
    * 通常在请求处理开始时调用，设置当前操作的员工ID
    * */
    public static void setCurrentId(Integer employeeId) {
        CURRENT_LOCAL.set(employeeId);
    }

    /*
    功能：获取当前线程存储的员工ID
    返回值：返回当前线程关联的员工ID，如果未设置则返回null
    用途：在业务逻辑中获取当前操作员工的身份信息
    */
    public static Integer getCurrentId() {
        return CURRENT_LOCAL.get();
    }

    /*
    功能：移除当前线程存储的员工ID
    返回值：无
    用途：在请求处理结束时调用，清理当前线程存储的员工ID
    */
    public static void remove() {
        CURRENT_LOCAL.remove();
    }
}
